package com.qk.management.mapper;

import com.qk.entity.Dept;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 *
 * @author MrZhao
 * @created 2025-09-29 10:33
 * @description 部门管理数据层Mapper接口
 *
 */

public interface DeptMapper {
    /**
     * 查询所有部门
     *
     * @return 部门列表
     */
    @Select("select * from dept")
    List<Dept> selectAll();
    /**
     * 删除部门Mapper接口开发
     *
     * @param id 部门id
     */
    @Delete("delete from dept where id = #{id}")
    void deleteById(Integer id);
    /**
     * 修改部门Mapper接口开发
     *
     * @param dept 部门实体类
     */
   // @Update("update dept set name = #{name},status = #{status},update_time = #{updateTime} where id = #{id}")
    void update(Dept dept);
    /**
     * 根据id查询部门
     *
     * @param id 部门id
     * @return 部门
     */
    @Select("select * from dept where id = #{id}")
    Dept selectById(Integer id);
    /**
     * 查询总记录数
     *
     * @param name   部门名称
     * @param status 部门状态
     * @return 部门总数
     */
    Integer count(@Param("name") String name,
                  @Param("status") Integer status);

    /**
     * 查询分页 数据
     *
     * @param name     部门名称
     * @param status   部门状态
     * @param offset     页码
     * @param pageSize 每页记录数
     * @return 部门列表
     */
    List<Dept> selectByPage(
            @Param("name") String name,
            @Param("status") Integer status,
            @Param("offset") Integer offset,
            @Param("pageSize") Integer pageSize);

    /**
     * 新增部门Mapper 接口开发
     *
     * @param dept 部门实体类
     */
    @Insert("insert into dept(name,status,create_time,update_time) values(#{name},#{status},#{createTime},#{updateTime})")
    void insert(Dept dept);
}
